package com.myapp.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

@Entity
@Table(name = "tt_socio")
@NamedQueries({
		@NamedQuery(name = "consultarSociosProyecto", query = "select s from Socio s  where  s.idUnidadH =:idUnidadH"),
		@NamedQuery(name = "consultarSociosEstatus", query = "select s from Socio s  where  s.idUnidadH =:idUnidadH and s.idEstatus.idElemento =:idEstatus"),
		@NamedQuery(name = "consultarSociosComision", query = "select s from Socio s  where s.idUnidadH =:idUnidadH and s.idComision.idElemento =:idComision"),
		@NamedQuery(name = "consultarEstadisticoGenero", query = "select count(s) from Socio s  where s.idUnidadH =:idUnidadH and s.idSexo.idElemento =:idSexo") })
public class Socio implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "id_socio")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long idSocio;

	@Column(name = "nombre_socio")
	private String nombreSocio;

	@Column(name = "apellido_paterno")
	private String apellidoPaterno;

	@Column(name = "apellido_materno")
	private String apellidoMaterno;

	@Column(name = "fecha_nacimiento")
	private Date fechaNacimiento;

	@Column(name = "fecha_alta")
	private Date fechaAlta;

	@Column(name = "fecha_actualizacion")
	private Date fechaActualizacion;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_estatus")
	private Elemento idEstatus;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_comision")
	private Elemento idComision;

	@Column(name = "numero_lista")
	private Long numeroLista;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_sexo")
	private Elemento idSexo;

	@Column(name = "correo")
	private String correo;

	@Column(name = "movil")
	private String movil;

	@Column(name = "telefono")
	private String telefono;

	@Column(name = "id_unidad_h")
	private Long idUnidadH;

	public Long getIdSocio() {
		return idSocio;
	}

	public void setIdSocio(Long idSocio) {
		this.idSocio = idSocio;
	}

	public String getNombreSocio() {
		return nombreSocio;
	}

	public void setNombreSocio(String nombreSocio) {
		this.nombreSocio = nombreSocio;
	}

	public String getApellidoPaterno() {
		return apellidoPaterno;
	}

	public void setApellidoPaterno(String apellidoPaterno) {
		this.apellidoPaterno = apellidoPaterno;
	}

	public String getApellidoMaterno() {
		return apellidoMaterno;
	}

	public void setApellidoMaterno(String apellidoMaterno) {
		this.apellidoMaterno = apellidoMaterno;
	}

	public Date getFechaNacimiento() {
		return fechaNacimiento;
	}

	public void setFechaNacimiento(Date fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}

	public Date getFechaAlta() {
		return fechaAlta;
	}

	public void setFechaAlta(Date fechaAlta) {
		this.fechaAlta = fechaAlta;
	}

	public Date getFechaActualizacion() {
		return fechaActualizacion;
	}

	public void setFechaActualizacion(Date fechaActualizacion) {
		this.fechaActualizacion = fechaActualizacion;
	}

	public Elemento getIdEstatus() {
		return idEstatus;
	}

	public void setIdEstatus(Elemento idEstatus) {
		this.idEstatus = idEstatus;
	}

	public Elemento getIdComision() {
		return idComision;
	}

	public void setIdComision(Elemento idComision) {
		this.idComision = idComision;
	}

	public Long getNumeroLista() {
		return numeroLista;
	}

	public void setNumeroLista(Long numeroLista) {
		this.numeroLista = numeroLista;
	}

	public Elemento getIdSexo() {
		return idSexo;
	}

	public void setIdSexo(Elemento idSexo) {
		this.idSexo = idSexo;
	}

	public String getCorreo() {
		return correo;
	}

	public void setCorreo(String correo) {
		this.correo = correo;
	}

	public String getMovil() {
		return movil;
	}

	public void setMovil(String movil) {
		this.movil = movil;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public Long getIdUnidadH() {
		return idUnidadH;
	}

	public void setIdUnidadH(Long idUnidadH) {
		this.idUnidadH = idUnidadH;
	}

}
